Utility usage forecasting

ABSTRACT

The computer creates a utility demand forecast model for weather parameters by receiving a plurality of utility parameter values, wherein each received utility parameter value corresponds to a weather parameter value. Determining that a range of weather parameter values lacks a sufficient amount of corresponding received utility parameter values. Determining one or more utility parameter values that corresponds to the range of weather parameter values. Creating a model which correlates the received and the determined utility parameter values with the corresponding weather parameters values.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OF DEVELOPMENT

This invention was made with Government support under DE-OE0000190awarded by Department of Energy. The Government has certain rights inthis invention.

FIELD OF THE INVENTION

The present invention relates generally to the field of utility usageforecasting and more particularly to determining data for improvedforecasting.

BACKGROUND OF THE INVENTION

Weather effects are often a contributing factor to the variability inutility usage forecasting. Weather effects can include past outdoortemperatures, past wind chill factors, past heat indices, and pastprecipitation measurement. Utilities can include natural gas providers,oil providers, electricity providers, and water supply providers. Themodeling of weather effects, such as outdoor temperature, for a utilityusage, such as electricity, allows for the electrical company to preparefor the commercial and residential demand in the short-term future.Utilizing previously recorded electrical usage for a given temperatureallows for a compilation of data to be used to create a modelrepresenting a predicted electrical usage at a given temperature.

Modeling of weather effects involves specifying a mathematical formulafor the relationship between usage and weather measurements. Forexample, the effect of the temperature on the utility usage is oftendescribed using a single index called “Degree Days” which can be furthersplit into two categories, Heating Degree Days (HDD) and Cooling DegreeDays (CDD). At a given instant in time, at most one of these indiceswill be relevant, and the other will have a zero value. For example, HDDis a measure of the severity of the cold weather as measured by theextent and duration of the temperature deviation below a baselinetemperature (e.g., 15° C.) that is used to quantify the heating load.Similarly CDD is a measure of the severity of the hot weather asmeasured by the extent and duration of the temperature deviation above abaseline temperature (e.g., 20° C.) that is used to quantify the coolingload. Typically the utility usage is assumed to be correlated to the HDDor CDD. However, such a model for the relationship between thetemperature and the utility usage is not ideal for calibrating accurateforecasting models, which are better modeled using nonlinearrelationships.

In short-term forecasting, certain issues may arise with the ability tocalibrate the forecasting models when information such as utility usagevalues is incomplete or missing for a range of weather effect values.For example, historical data for electrical usage may be unavailable forcertain outlier values for the temperatures, such as for example,unseasonably hot or cold temperatures that may have never beenencountered in the historical data. In another example, the amount ofhistorical data for electrical usage might not include completeinformation if the historical data was taken from only a certain timeperiod of the entire year. The appropriate electrical usage data mightnot exist for a temperature range that is typically not seen in thehistorical data during the certain season for which the calibrated modelforecasts are required.

SUMMARY

Embodiments of the present invention disclose a method for creating autility demand forecast model for weather parameters. A computerreceiving, by one or more processors, a plurality of utility parametervalues, wherein each received utility parameter value, corresponds to aweather parameter value. The computer determining, by one or moreprocessors, that a range of weather parameter values lacks a sufficientamount of corresponding received utility parameter values. The computerdetermining, by one or more processors, one or more utility parametervalues that corresponds to the range of weather parameter values. Thecomputer creating, by one or more processors, a model which correlatesthe received and the determined utility parameter values withcorresponding weather parameters values.

Embodiments of the present invention disclose a computer program productfor creating a utility demand forecast model for weather parameters. Aprogram product comprising, program instructions stored on the one ormore computer readable storage media. The computer program productreceiving, by one or more processors, a plurality of utility parametervalues, wherein each received utility parameter value corresponds to aweather parameter value. The computer program product determining, byone or more processors, that a range of weather parameter values lacks asufficient amount of corresponding received utility parameter values.The computer program product determining, by one or more processors, oneor more utility parameter values that corresponds to the range ofweather parameter values. The computer program product creating, by oneor more processors, a model which correlates the received and thedetermined utility parameter values with corresponding weatherparameters values.

Embodiments of the present invention disclose a computer system forcreating a utility demand forecast model for weather parameters. Acomputer system comprising program instructions stored on the one ormore computer readable storage media, for execution by at least one ofthe one or more computer processors. The computer system receiving, byone or more processors, a plurality of utility parameter values, whereineach received utility parameter value corresponds to a weather parametervalue. The computer system determining, by one or more processors, thata range of weather parameter values lacks a sufficient amount ofcorresponding received utility parameter values. The computer systemdetermining, by one or more processors, one or more utility parametervalues that corresponds to the range of weather parameter values. Thecomputer system creating, by one or more processors, a model whichcorrelates the received and the determined utility parameter values withcorresponding weather parameters values.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a distributed dataprocessing environment, in accordance with an embodiment of the presentinvention.

FIG. 2 is a flowchart depicting operational steps of a splineforecasting program, in accordance with an embodiment of the presentinvention.

FIG. 3 is a flowchart depicting operational steps of the splineforecasting program creating a utility forecast model, in accordancewith an embodiment of the present invention.

FIG. 4a is an example utility forecasting model incorporating receivedand created utility parameter values, in accordance with an embodimentof the present invention.

FIG. 4b is the example utility forecasting model of FIG. 4a in adifferent representation, in accordance with an embodiment of thepresent invention.

FIG. 5 is an example of the basis function set used for the splinerepresentation, in accordance with an embodiment of the presentinvention.

FIG. 6 is an example of a usage-temperature relation calibrated onhistorical data, in accordance with an embodiment of the presentinvention.

FIG. 7 depicts a block diagram of components of the computer deviceexecuting the service migration program, in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit”, “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer readable program code/instructions embodiedthereon.

Any combination of computer-readable media may be utilized.Computer-readable media may be a computer-readable signal medium or acomputer-readable storage medium. A computer-readable storage medium maybe, for example, but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, ordevice, or any suitable combination of the foregoing. More specificexamples (a non-exhaustive list) of a computer-readable storage mediumwould include the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), an optical fiber, a portable compactdisc read-only memory (CD-ROM), an optical storage device, a magneticstorage device, or any suitable combination of the foregoing. In thecontext of this document, a computer-readable storage medium may be anytangible medium that can contain, or store a program for use by or inconnection with an instruction execution system, apparatus, or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium may be any computer-readable medium thatis not a computer-readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java®, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on a user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Cubic splines are a commonly used form for representing this nonlinearrelationship. A cubic spline is a smooth function that takes the form ofa cubic polynomial in a set of neighboring and non-overlappingintervals. It is defined by a set of parameters equal in number to thenumber of said non-overlapping intervals. However, these parameterswhich define the cubic spline typically have no direct physical orintuitive meaning.

A forecasting program can utilize a modeling method that uses cubicsplines to represent the nonlinear usage-weather relationship. Whencalibrating to historical data, the resulting estimated cubic splineparameters in the representation can be interpretable by using concepts,such as Heating Degree Days (HDD) and Cooling Degree Days (CDD)parameterizations within a nonlinear cubic spline representation.

The model utilizing this representation expresses the relationshipbetween the utility usage and a single predictor variable, such as thetemperature, in the mathematical form of a cubic spline with “natural”boundary conditions. This form is defined by a set of “knots”, a set ofvalues x₁, . . . , x_(K), given in increasing order, and specified inadvance of the analysis to take values within the expected range of thedata for the predictor variable (e.g., 0° C. to 24° C.). Between eachpair of adjacent knots the spline approximation is a cubic polynomial;outside the boundary knots, i.e., for values of the predictor variableless than x₁ and greater than x_(K), the spline approximation is alinear function; at each knot the function value and the first twoderivatives are continuous. These conditions define the splineapproximation except for a set of K parameters that can be specified bythe user based on any available prior information, or estimated bycalibrating the approximation on a set of historical data, or somecombination of these approaches, such as a Bayesian analysis that makesuse both of prior information and historical data about the parametervalues.

There are numerous ways of formulating the K parameters for specifyingthe spline approximation. For example, one can specify the functionvalue at each knot, or the function value at each boundary knot and thefirst derivative of the function at each of the other “interior” knots.These parameters typically do not have a direct physical interpretation.In the present invention, the representation of the spline approximationinvolves a set of parameters of which at least two have a clear physicalinterpretation. These parameters are the slopes of the splineapproximation in the two end segments of the approximation, i.e., valuesof the predictor variable less than x₁ and greater than x_(K). In amodel of usage versus a weather-related predictor variable such astemperature, these slopes represent the change in usage for eachone-degree increase in temperature at extremely low or extremely hightemperatures.

FIG. 1 is a functional block diagram illustrating a distributed dataprocessing environment, generally designated 100, in accordance with oneembodiment of the present invention. Distributed data processingenvironment 100 includes computer device 104, data storage 108, andutility station 110 all interconnected over network 102.

Computer device 104 can be a laptop computer, a tablet computer, anetbook computer, a personal computer (PCs), a desktop computer, apersonal digital assistant (PDA), a smartphone, or any otherprogrammable electronic device capable of communicating with utilitystation 110 via network 102. Computer device 104 includes splineforecasting program 106, which has access to data storage 108 andinformation contained within. Data storage 108 can be a collection ofstorage units accessible by either computer device 104 or utilitystation 110.

Utility station 110 is connected to a plurality of structures 112A,112B, and additional structures not illustrated, designated as structure112C. Utility station 110 can be a natural gas provider, an oilprovider, an electricity provider, a water supply provider, or any otherutility provider where usage of the other utility can be monitored. Inthis embodiment, utility station 110 provides electricity to structures112A, 112B, and 112C and metering device 114 monitors the amount ofelectricity, utility station 110 provides to structures 112A, 112B, and112C. In other embodiments, metering device 114 can be located atstructures 112A, 112B, and 112C and metering device 114 can sendrecorded monitored values to utility station 110. Metering device 114can also monitor and record weather effect values at the location ofutility station 110. Weather effects can be outdoor temperature values,heat index values, wind chill factor values, precipitation values, orany other weather effect values where there can be a correlation betweenthe other weather effect value and utility usage value. The recordedweather effect values and utility usage values from metering device 114are stored in data storage 108. Data storage 108 can also store multiplecorrelations between the weather effect values and both, the utilityusage values and a particular time period such as, a time of day, month,and season.

Spline forecasting program 106 can create a utility forecast model withthe use of limited historical data, through a series of operationalsteps. Spline forecasting program 106 can access the weather effectvalues and the utility usage values in data storage 108 to generate theutility forecasting model. Spline forecasting program 106 has theability to create a forecasting model for situations where either of theutility usage values or weather effect values may be limited,inconsistent, and/or missing.

In one embodiment, computer device 102 may be owned, and at leastnominally controlled (e.g., required to install various securitysoftware, updates, etc.), by the same entity controlling utility station110. In such an embodiment, computer device 104 may be considered partof utility station 110.

Network 102 can be any combination of connections and protocols thatwill support communications between computer device 104, data storage108, and utility station 110. Network 102 can include, for example, alocal area network (LAN), a wide area network (WAN) such as theinternet, a cellular network, or any combination of the preceding, andcan further include wired, wireless, and/or fiber optic connections.

FIG. 2 is a flowchart depicting operational steps of a splineforecasting program 106, in accordance with an embodiment of the presentinvention.

In an exemplary embodiment, spline forecasting program 106 produces aforecasting model for short-term electricity usage. The weather effecton which spline forecasting program 106 bases the short-term electricityusage forecast model is outdoor temperature at utility station 110 aspreviously recorded by monitoring device 114.

Spline forecasting program 106 receives a request to create a utilityusage forecast model (step 202). In one embodiment, spline forecastingprogram 106 receives an input from a user specifying a type of utilityparameter and a type of weather parameter for which the utility forecastusage model is to be based upon. In this example, the utility parameteris previous electricity usage for a specified period and the weatherparameter is previous out door temperatures for the specified period. Inthe exemplary embodiment, the specified period is equivalent to 6 monthsincorporating the spring and summer months. Spline forecasting program106 is creating a utility usage forecast model for the subsequent 6months incorporating the fall and winter months.

Spline forecasting program 106 receives weather parameter values (step204). In one embodiment, spline forecasting program 106 queries datastorage 108 to obtain the weather parameter values. Continuing from thepreviously mentioned example, outdoor temperature values are receivedfor the specified period of 6 months. However, temperature values forthe subsequent 6 months (i.e., fall and winter months) may not be withinthe bound of the specified 6 months from which spline forecastingprogram 106 bases the utility usage forecast model upon.

To incorporate such temperatures outside the bound of the specified 6month period, spline forecasting program 106 can receive an input from auser specifying a desired range for the forecasting model. In oneexample, if during the specified 6 month period the temperature rangewas between 45° F. and 90° F. and the temperature for the subsequent 6months is in the 0° F. to 45° F., spline forecasting program 106 may notinclude certain temperature values due to the limitation of thetemperature parameter values being utilized for the creation of theutility usage forecasting model. To incorporate the 0° F. to 45° F.temperature parameter range, spline forecasting program 106 can receivean input from a user with the specified range or the user canpre-program spline forecasting program 106 to utilize the same range fortemperature parameter value for creating the forecasting model.

Spline forecasting program 106 receives utility parameter values (step206). In one embodiment, spline forecasting program 106 can query datastorage 108 to obtain the utility parameter values corresponding to theweather parameter values in step 204. Continuing from the previouslymentioned example, the utility parameter values are the electricityusage values for a given day during the specified 6 month period. Suchelectrical usage values for any give day during the specified 6 monthperiod can be stored in data storage 108 where each of the storedelectrical usage values has an associate temperature parameter value.Spline forecasting program 106 can receive the electrical usage valuefor any time in a 24-hour period for each given day of the specified 6month period.

In one example, a user can pre-program spline forecasting program 106 toutilize electrical usage values during the coldest part of a given day(i.e., low temperature) to forecast electrical usage during the nighttime. In another example, the user can pre-program spline forecastingprogram 106 to utilize electrical usage values during the hottest partof a give day (i.e., high temperatures) to forecast electrical usageduring the middle of the day.

Spline forecasting program 106 determines a correlation between theweather parameter values and the utility parameter values (step 208).The correlation, in mathematical terms, is also known as the line ofbest fit. The correlation is an estimation performed to create a singleutility parameter value for every weather parameter value. Continuingfrom the previously mentioned example, spline forecasting program 106can determine a correlation between outdoor temperature values andelectricity usage values. Since the temperature range is 0° F. and 90°F. for the specified and subsequent 6 months, spline forecasting program106 determines the correlation for the temperature range of 0° F. and90° F. Spline forecasting program 106 determines a single correlationbased on the electricity usage values for the corresponding temperaturevalues for the specified 6 months, upon which spline forecasting program106 can utilize the determined correlation to create a utility usageforecast mode for the temperature range of 0° F. and 90° F.

Spline forecasting program 106 represents the relationship betweenutility usage and any single predictor variable in the mathematical formof a cubic spline with so-called “natural” boundary conditions. Thisform is defined by a set of “knots”, a set of at least four values x₁, .. . , x_(K), (i.e., with K≧4), given in increasing order, and specifiedin advance of the analysis. Between each pair of adjacent knots thespline approximation is a cubic polynomial. Outside the boundary knots,i.e., for values of the predictor variable less than x₁ and greater thanx_(K), the spline approximation is a linear function and at each knotthe function value and its first two derivatives are continuous. Splineforecasting program 106 can utilize another set of K parameters tospecify the spline approximation. In this embodiment, these parametersinclude the level and slope of the spline approximation at each boundaryknot. If K is greater than 4, any set of additional parameters thatsuffices to define the spline approximation may be used. In an exemplaryembodiment the spline parameters are the level and slope of the splineapproximation at each boundary knot, and the second derivative of thespline approximation at the interior knots x₃≦x<x_(K−2). Splineforecasting program 106 can express the spline approximation as aweighted sum of basis functions by constructing the given knot locationsx₁, . . . , x_(K).

A real-valued function of a real variable x is a cubic spline functionwith knots t₁, t₂, t₃, t₄ if the function is a cubic polynomial on eachof the intervals −∞<x<t₁, t₁≦x<t₂, t₂≦x<t₃, t₃≦x<t₄, and t₄≦x<∞, and thevalues of the function and the first two derivatives are continuous atthe values t₁, t₂, t₃, t₄.

Spline forecasting program 106 defines four basis functions designed tohave specific values outside the range of the knots.

Let L₁(x) be a spline function with knots x₁, . . . , x₄, with theproperties that L₁(x)=1 if x<x₁ and L₁(x)=0 if x>x₄.

Let S₁(x) be a spline function with knots x₁, . . . , x₄, with theproperties that S₁(x)=x−x₁ if x<x₁ and S₁(x)=0 if x>x₄.

Let L_(K)(x) be a spline function with knots x_(K−3), . . . , x_(K),with the properties that L_(K)(x)=0 if x<x_(K−3) and L_(K)(x)=1 ifx>x_(K).

Let S_(K)(x) be a spline function with knots x_(K−3), . . . , x_(K),with the properties that S_(K)(x)=0 if x<x_(K−3) and S_(K)(x)=x−x_(K) ifx>x_(K).

In each of the cases, the function values in the interval x₁<x<x₄ (forL₁ and S₁) or x_(K−3)≦x<x_(K) (for L_(K) and S_(K)) can be specified by12 constants, the four coefficients of the cubic polynomial in each ofthe three intervals x₁≦x<x₂, x₂≦x<x₃, x₃≦x<x₄ (for L₁ and S₁) orx_(K−3)≦x<x_(K−2), x_(K−2)≦x<x_(K−1), x_(K−1)≦x<x_(K) (for L_(K) andS_(K)). The properties of a cubic spline function, i.e., continuity ofthe function and its first two derivatives at the four knot values,provide 12 linear constraints on the coefficients that suffice todetermine the coefficients exactly. Spline forecasting program 106 cancompute the coefficients in practice by solving a set of 12 simultaneouslinear equations derived from the said conditions on the coefficients.

If K>4, define a further K−4 basis functions B_(k) (X), k=1, . . . ,K−4, recursively by setting

${B_{k}^{(0)}(x)} = \left\{ {\begin{matrix}{1,} & {{x_{k} \leq x < x_{k + 1}},} \\{0,} & {otherwise}\end{matrix},} \right.$for k=1, . . . , K−1, and for m=1, 2, 3 define

${B_{k}^{(m)}(x)} = {{\frac{x - x_{k}}{x_{k + m} - x_{k}}{B_{k}^{({m - 1})}(x)}} + {\frac{x_{k + m + 1} - x}{x_{k + m + 1} - x_{k + 1}}{B_{k + 1}^{({m - 1})}(x)}}}$for k=1, . . . , K−1−m. Spline forecasting program 106 setsB_(k)(x)=B_(k) ⁽³⁾(x), k=1, . . . , K−4 and notes that B_(k)(x)=0 forx≦x_(k) and x≧x_(k+m+1).

Any weighted average of these basis functions is a natural cubic spline,i.e., a function that is linear in the two end segments −∞<x<x₁ andx_(k)≦x<∞ respectively, quadratic in the adjacent intervals x₁<x<x₂ andx_(K−1)<x<x_(K), and cubic in the inner intervals x_(k)<x<x_(k+1), k=2,. . . , K−2.

At x=x₁, function L₁ has unit intercept and zero slope, function S₁ haszero intercept and unit slope, and the other basis functions all havezero intercept and zero slope. Thus in a function approximation that isa weighted average of the basis functions, the weight assigned to L₁will be the function value of the approximation at x=x₁ and the weightassigned to S₁ will be the slope of the approximation at x=x₁ andthroughout the interval −∞<x<x₁.

Similarly, at x=x_(K), function L_(K) has unit intercept and zero slope,function S_(K) has zero intercept and unit slope, and the other basisfunctions all have zero intercept and zero slope. Thus in a functionapproximation that is a weighted average of the basis functions, theweight assigned to L_(K) will be the function value of the approximationat x=x_(K) and the weight assigned to S_(K) will be the slope of theapproximation at x=x_(K) and throughout the interval x_(K)<x<∞.

Spline forecasting program 106 creates the utility usage forecast model(step 210). Utilizing the determined correlation from step 208, splineforecasting program 106 can create a single utility usage forecast valuefor every temperature parameter value in the temperature range. Aninterval for the temperature parameter values can be pre-programmed by auser into spline forecasting program 106 to limit the number of utilityforecast values spline forecasting program 106 produces.

FIG. 3 is a flowchart depicting operational steps of the splineforecasting program creating a utility forecast model, in accordancewith an embodiment of the present invention.

As previously discussed in step 210, spline forecasting program 106 iscapable of creating a utility forecast model based on the correlationbetween utility parameter values and temperature parameter values.However, in situations such as the previously mentioned example, theamount of utility parameter values may be limited or non existent fortemperature parameter values where spline forecasting program 106 iscreating the utility usage forecast model. Spline forecasting program106 can identify and compensate for situations where a limited amount ofutility parameter values are not present.

Spline forecasting program 106 determines a utility forecast model touse (step 302). A user can pre-program spline forecasting program 106 toutilize the same forecasting model whenever spline forecasting program106 receives a request to create a utility forecast model in step 202.In one embodiment, spline forecasting program 106 can determine to use autility forecast model which can utilize received utility parametervalues for corresponding weather parameter values to generate additionalutility parameter values where spline forecasting program 106 deems theamount of utility parameter values as lacking. Spline forecastingprogram 106 can create the additional utility parameter values based onestimation and a probability of the additional utility parameter valuesoccurring for the corresponding temperature parameter values. In anotherembodiment, spline forecasting program 106 can determine to use autility forecast model which can utilize two or more correlations tocreate a utility forecast model.

Spline forecasting program 106 determines a value range for the weatherparameter values (step 304). The value range for the weather parametervalues represents the value range for which spline forecasting program106 creates a forecast model. In one embodiment, spline forecastingprogram 106 determines the value range for the weather parameter valuesby evaluating the received weather parameter values in step 204. Splineforecasting program 106 can determine the upper and lower bounds of thevalue range by determining the highest and the lowest values in thereceived weather parameter values. The upper and lower bounds canrepresent the range for which spline forecasting program 106 creates theutility forecast model.

In another embodiment, spline forecasting program 106 can query the userfor the value range for the weather parameter values. In addition todetermining the upper and lower bounds for the value range, splineforecasting program 106 can query the user to determine if the upper andlower bounds for the value range are correct. In the event the upper andlower bounds do not represent the desired value range for the utilityforecast model, spline forecasting program 106 can query the user forthe correct upper and lower bounds that represent the desired valuerange. Spline forecasting program 106 can store the received value rangeand base the utility forecast model on the received value range. It isto be noted, spline forecasting program 106 can forego the determiningof the upper and lower bounds for the value range and query the user forthe upper and lower bounds for the value range without splineforecasting program 106 providing a possible value range.

Spline forecasting program 106 identifies where utility parameter valuesare lacking (step 306). Spline forecasting program 106 can identifyvalue ranges for weather parameter values where there may be limited ornon existent amounts of utility parameter values. In one embodiment,spline forecasting program 106 can have a threshold where the thresholdis an amount of utility parameter values in an identified value rangefor weather parameter values.

For example, if the weather parameter value are outdoor temperatureswith a determined value range of 0° F. and 90° F. then the identifiedvalue range can be increments of 10° F., such as 20° F.-30° F. Thethreshold for the amount of utility parameter values, such aselectricity usage values, can be 20 electricity usage values for theidentified value range, such as 20° F.-30° F. If the threshold isexceeded, spline forecasting program 106 determines the amount ofelectricity usage values for the identified value range for temperatureparameter values is not lacking and proceeds to determine if thethreshold is exceeded for the next identified value range. If thethreshold limit is not exceeded, spline forecasting program 106determines that the amount of electricity usage values for theidentified value range for temperature parameter values is lacking.

Spline forecasting program 106 creates additional utility parametervalues according to the determined utility forecast model (step 308).The identified value ranges for weather parameter values where splineforecasting program 106 identified utility parameter values are lacking,is where spline forecasting program 106 creates additional utilityparameter values. In one embodiment, spline forecasting program 106 cancreate the additional utility parameter values through mathematicalalgorithms and probability of occurrence, such as Bayesian Inference.Spline forecasting program 106 can utilize such mathematical algorithmsand probability of occurrence by creating the additional utilityparameter values based on the existing utility parameter values.

Spline forecasting program 106 creates a correlation between the utilityparameter values and the weather parameter values (step 310). Aspreviously discussed, the correlation is estimation, performed to createa single utility parameter value for every weather parameter value. Inone embodiment, spline forecasting program 106 can constrain theapproximation of the correlation by separating the weather parametervalues to create two dependent correlations. For example, if thecorrelation between utility parameter values and weather parametervalues is parabolic, spline forecasting program 106 can establish aseparation at a vertex of the parabolic correlation. The separation atthe vertex dictates where spline forecasting program 106 creates twoseparate dependent correlations. In one example, spline forecastingprogram 106 can establish the slope for the second correlation as ⅔ theslope for the first correlation and provide a more desirable correlationat the lower and upper bounds of the temperature parameter values forthe utility parameter values.

In another embodiment, utilizing the received utility parameter valuesalong with the additionally created utility parameter values creates acorrelation with the weather parameter values. The additional utilityparameters values compensate for possible correlation manipulation, forexample data skewing. In an instance where there are a limited amount ofutility parameter values in a range of weather parameter values, forexample areas containing outliers, the correlation between the utilityparameter values and weather parameter values may be skewed. Splineforecasting program 106 creates a consistent correlation with theutilization of the additionally created utility parameter values whichotherwise would have created an inconsistent correlation.

Spline forecasting program 106 creates forecasting estimates based onthe correlation (step 312). Utilizing the correlation, splineforecasting program 106 creates a list of forecasted estimates forutility usage for every weather parameter value. Since, the correlationis spline based; the amount of forecasted estimates for utility usage isinfinite. To handle the amount of forecasted estimates, splineforecasting program 106 can select finite values when create forecastingestimates. For example, if a correlation exists between electricityusage values and temperature parameter values in the 20° F.-30° F.range, spline forecasting program 106 can create a forecasting estimatefor utility usage for 1° F. intervals. Such intervals can bepre-programmed by a user into spline forecasting program 106 or splineforecasting program 106 can query the user to determine the intervalsfor the weather parameter values.

FIG. 4a is an example utility forecasting model incorporating receivedand created utility parameter values, in accordance with an embodimentof the present invention.

Megawatts 402 represent a unit of measurement for electrical usage andtemperature 404 represent a weather parameter at which the electricalusage was recorded. In this example, the value range for temperature 404is 10° F.-50° F. However, the utility parameter values (i.e., electricalusage values 406) which spline forecasting program 106 receives in step206, are concentrated in the 15° F.-35° F. temperature range. In thetemperature value ranges, 0° F.-14° F. and 36° F.-50° F., there is alower concentration of electrical usage values where spline forecastingprogram 106 identifies as lacking in utility parameters values.Additional electrical usage values 408 compensate for the lowerconcentration of electrical usage values in the temperature ranges, 0°F.-14° F. and 36° F.-50° F. Correlation line 410 represents theestimation, performed to create a single utility value for a singletemperature value.

FIG. 4b is the example utility forecasting model of FIG. 4a in adifferent representation, in accordance with an embodiment of thepresent invention.

Utilizing correlation line 410, spline forecasting program 106 creates aforecast estimates chart 412 for electrical usage at a given temperaturein the temperature 404 value range of 10° F.-50° F. In this embodiment,the interval at which spline forecasting program 106 creates estimatesis 1° F. In another embodiment, the interval at which spline forecastingprogram 106 creates estimates is 0.5° F. As previously discussed, theintervals can be pre-programmed by the user of spline forecastingprogram 106. Spline forecasting program 106 translates correlation line410 into manageable data which can be readily accessed by a user ofspline forecasting program 106.

FIG. 5 is an example of the basis function set used for the splinerepresentation, in accordance with an embodiment of the presentation.

An example set of basis functions is illustrated in FIG. 5, for a casewith knot cluster 512 containing knot values 3, 6, 9, 12, 15, 18, 21,24, and 27. For discussion purposes, basis functions 502, 504, 506, and508 respectively represent basis functions L₁, S₁, L₉, and S₉. Basisfunctions cluster 510 represent basis functions B₁, . . . , B₅. Basisfunctions 502, 504, 506, and 508 are shown as solid lines and Basisfunctions cluster 510 are shown as dotted lines. Cluster points 512 onthe horizontal axis indicate the knot values x₁, . . . , x₉.

Spline forecasting program 106 obtains the numerical values for theparameters of the spline approximation by calibration of therelationship between usage and the predictor variable on historical dataor by specification of fixed values for the parameters based on expertknowledge, or a combination of these two approaches. In an exemplaryembodiment, the spline approximation between electricity usage andtemperature, spline forecasting program 106 calibrates on historicaldata using a Bayesian approach that can incorporate prior informationabout the slope of the usage-temperature relationship in the endsegments.

FIG. 6 is an example of a usage-temperature relation calibrated onhistorical data, in accordance with an embodiment of the presentinvention.

FIG. 6 illustrates the effect of the Bayesian analysis. The plottedpoints are a set of values of usage (kW per customer) and temperature (°C.), on Monday's at 11 AM for 52 consecutive weeks for a set of electricutility customers. The usage-temperature relation is approximated by anatural cubic spline with knots at temperature values 9, 12, 15, 18, 21,and 24, represented by knot cluster 512 in FIG. 5. This spline is fittedas a weighted average of six basis functions computed as describedabove, with the weights first estimated by the method of least squares.This fit is obtained by linear regression, with predictor variablesgiven by the basis functions evaluated at the observed temperaturevalues. The regression model has six coefficients, one for each basisfunction; these coefficients determine the weights assigned to eachbasis function in the weighted average that defines the cubic splineapproximation to the usage-temperature relation. For this data set thereis only one temperature value greater than 20, and the estimated weightsfor the basis functions describing the usage-temperature relation athigh temperatures are not reliable. Spline forecasting program 106applies a Bayesian approach, a regression model with normal priordistributions specified for each of the six regression coefficients. Theregression coefficients corresponding to slopes of the usage-temperaturerelation were set to physically plausible values; a mean of −0.3 andstandard deviation 0.5 for the slope for temperatures less than 9, and amean of 0.15 and standard deviation 0.5 for the slope for temperaturesgreater than 24. Spline forecasting program 106 assigns othercoefficients that diffuse prior distributions with mean 0 and standarddeviation 1000. The posterior mean of the estimated usage-temperaturerelation is shown as solid line 602. The slope of the relation fortemperatures above 24 is now 0.155, little changed from its prior meanbecause there is little information in the data to override the priorestimate.

FIG. 7 depicts a block diagram of components of a computer, capable ofoperating spline forecasting program 106 within computer device 104, inaccordance with an illustrative embodiment of the present invention. Itshould be appreciated that FIG. 7 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environment may be made.

Computer device 104 includes communications fabric 702, which providescommunications between computer processor(s) 704, memory 706, persistentstorage 708, communications unit 710, and input/output (I/O)interface(s) 712. Communications fabric 702 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric702 can be implemented with one or more buses.

Memory 706 and persistent storage 708 are computer-readable storagemedia. In this embodiment, memory 706 includes random access memory(RAM) 714 and cache memory 716. In general, memory 706 can include anysuitable volatile or non-volatile computer-readable storage media.

Spline forecasting program 106 is stored in persistent storage 708 forexecution by one or more of the respective computer processors 704 viaone or more memories of memory 706. In this embodiment, persistentstorage 708 includes a magnetic hard disk drive. Alternatively, or inaddition to a magnetic hard disk drive, persistent storage 708 caninclude a solid state hard drive, a semiconductor storage device,read-only memory (ROM), erasable programmable read-only memory (EPROM),flash memory, or any other computer-readable storage media that iscapable of storing program instructions or digital information.

The media used by persistent storage 708 may also be removable. Forexample, a removable hard drive may be used for persistent storage 708.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage708.

In these examples, communications unit 710 includes one or more networkinterface cards. Communications unit 710 may provide communicationsthrough the use of either or both physical and wireless communicationslinks. Spline forecasting program 106 may be downloaded to persistentstorage 708 through communications unit 710.

I/O interface(s) 712 allows for input and output of data with otherdevices that may be connected to computer device 104. For example, I/Ointerface 712 may provide a connection to external devices 718 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 718 can also include portable computer-readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention, e.g., spline forecasting program106, can be stored respectively on such portable computer-readablestorage media and can be loaded onto persistent storage 708 via I/Ointerface(s) 712. I/O interface(s) 712 may also connect to a display720.

Display 720 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

What is claimed is:
 1. A method for creating a utility demand forecast model for weather parameters, the method comprising: receiving, by one or more processors, a plurality of utility parameter values, wherein each utility parameter value out of the plurality of utility parameter values corresponds to a weather parameter value; determining, by one or more processors, that a range of weather parameter values lacks a sufficient amount of corresponding utility parameter values out of the plurality of utility parameters; determining, by one or more processors, a set of utility parameter values that corresponds to the range of weather parameter values based on a portion of the plurality of utility parameter values corresponding to the range of weather parameter values lacking a sufficient amount of corresponding utility parameter values; creating, by one or more processors, a model which correlates the plurality of utility parameter values and the set of utility parameter values with corresponding weather parameters values; and providing, by one or more processors, an amount of a utility to one or more structures based on the model.
 2. The method of claim 1, wherein the step of, determining that a range of weather parameter values lacks a sufficient amount of corresponding utility parameter values, comprises: determining, by one or more processors, that an amount of received utility parameter values that correspond to the range of the weather parameter values neither meet nor exceed a threshold.
 3. The method of claim 2, wherein the step of, determining a set of utility parameter values that corresponds to the range of weather parameter values, comprises: determining, by one or more processors, a plurality of utility parameter values that may correspond to a first weather parameter value of the range of weather parameter values, wherein each of the plurality of utility parameter values has an associated probability of occurrence; and determining, by one or more processors, one or more utility parameter values from the plurality of utility parameter values, wherein the determined one or more utility parameter values has the highest associated probability of occurrence.
 4. The method of claim 1, wherein the weather parameter values includes a group comprising one or more of: past outdoor temperatures, past wind chill factors, past heat indices, and past precipitation measurements.
 5. The method of claim 1, wherein the utility parameter values includes a group comprising one or more of: past natural gas consumption, past electrical consumption, water consumption, and past heating oil consumption.
 6. The method of claim 1, wherein the step of, creating a model which correlates the plurality of utility parameter values and the the set of utility parameter values with corresponding weather parameters values, comprises: determining, by one or more processors, a single utility parameter value that corresponds to each weather parameter value.
 7. The method of claim 1, wherein the step of, creating a model which correlates the plurality of utility parameter values and the the set of utility parameter values with corresponding weather parameters values, comprises: determining, by one or more processors, a first slope for a first portion of determined utility parameter values; determining, by one or more processors, a second slope for a second portion of determined utility parameter values; and generating, by one or more processors, a model, utilizing a cubic spline approximation, based on the determined first and second slopes.
 8. A computer program product for creating a utility demand forecast model for weather parameters, the computer program product comprising: one or more computer readable storage media; program instructions stored on the one or more computer readable storage media, wherein the one or more computer readable storage media is not a signal per se, which when executed by one or more processors, cause the processor to: receive, by one or more processors, a plurality of utility parameter values, wherein each utility parameter value out of the plurality of utility parameter values corresponds to a weather parameter value; determine, by one or more processors, that a range of weather parameter values lacks a sufficient amount of corresponding utility parameter values out of the plurality of utility parameters; determine, by one or more processors, a set of utility parameter values that corresponds to the range of weather parameter values based on a portion of the plurality of utility parameter values corresponding to the range of weather parameter values lacking a sufficient amount of corresponding utility parameter values; create, by one or more processors, a model which correlates the plurality of utility parameter values and the set of utility parameter values with corresponding weather parameters values; and provide, by one or more processors, an amount of a utility to one or more structures based on the model.
 9. The computer program product of claim 8, wherein the step of, determining that a range of weather parameter values lacks a sufficient amount of corresponding utility parameter values, comprises program instructions, stored on the one or more computer readable storage media, which when executed by a processor, cause the processor to: determine, by one or more processors, that an amount of received utility parameter values that correspond to the range of the weather parameter values neither meet nor exceed a threshold.
 10. The computer program product of claim 9, wherein the step of, determining a set of utility parameter values that corresponds to the range of weather parameter values, comprises program instructions, stored on the one or more computer readable storage media, which when executed by a processor, cause the processor to: determine, by one or more processors, a plurality of utility parameter values that may correspond to a first weather parameter value of the range of weather parameter values, wherein each of the plurality of utility parameter values has an associated probability of occurrence; and determine, by one or more processors, one or more utility parameter values from the plurality of utility parameter values, wherein the determined one or more utility parameter values has the highest associated probability of occurrence.
 11. The computer program product of claim 8, wherein the weather parameter values includes a group comprising one or more of: past outdoor temperatures, past wind chill factors, past heat indices, and past precipitation measurements.
 12. The computer program product of claim 8, wherein the utility parameter values includes a group comprising one or more of: past natural gas consumption, past electrical consumption, water consumption, and past heating oil consumption.
 13. The computer program product of claim 8, wherein the step of, creating a model which correlates the plurality of utility parameter values and the the set of utility parameter values with corresponding weather parameters values, stored on the one or more computer readable storage media, which when executed by a processor, cause the processor to: determine, by one or more processors, a single utility parameter value that corresponds to each weather parameter value.
 14. The computer program product of claim 8, wherein the step of, creating a model which correlates the plurality of utility parameter values and the the set of utility parameter values with corresponding weather parameters values, stored on the one or more computer readable storage media, which when executed by a processor, cause the processor to: determine, by one or more processors, a first slope for a first portion of determined utility parameter values; determine, by one or more processors, a second slope for a second portion of determined utility parameter values; and generate, by one or more processors, a model, utilizing a cubic spline approximation, based on the determined first and second slopes.
 15. A computer system for creating a utility demand forecast model for weather parameters, the computer system comprising: one or more computer processors; one or more computer readable storage media; program instructions stored on the one or more computer readable storage media, for execution by at least one of the one or more computer processors, which when executed, cause the computer processor to: receive, by one or more processors, a plurality of utility parameter values, wherein each utility parameter value out of the plurality of utility parameter values corresponds to a weather parameter value; determine, by one or more processors, that a range of weather parameter values lacks a sufficient amount of corresponding utility parameter values out of the plurality of utility parameters; determine, by one or more processors, a set of utility parameter values that corresponds to the range of weather parameter values based on a portion of the plurality of utility parameter values corresponding to the range of weather parameter values lacking a sufficient amount of corresponding utility parameter values; create, by one or more processors, a model which correlates the plurality of utility parameter values and the set of utility parameter values with corresponding weather parameters values; and provide, by one or more processors, an amount of a utility to one or more structures based on the model.
 16. The computer system of claim 15, wherein the step of, determining that a range of weather parameter values lacks a sufficient amount of corresponding utility parameter values, comprises program instructions, stored on the one or more computer readable storage media, which when executed by a processor, cause the processor to: determine, by one or more processors, that an amount of received utility parameter values that correspond to the range of the weather parameter values neither meet nor exceed a threshold.
 17. The computer system of claim 16, wherein the step of, determining a set of utility parameter values that corresponds to the range of weather parameter values, comprises program instructions, stored on the one or more computer readable storage media, which when executed by a processor, cause the processor to: determine, by one or more processors, a plurality of utility parameter values that may correspond to a first weather parameter value of the range of weather parameter values, wherein each of the plurality of utility parameter values has an associated probability of occurrence; and determine, by one or more processors, one or more utility parameter values from the plurality of utility parameter values, wherein the determined one or more utility parameter values has the highest associated probability of occurrence.
 18. The computer system of claim 15, wherein the utility parameter values includes a group comprising one or more of: past natural gas consumption, past electrical consumption, water consumption, and past heating oil consumption.
 19. The computer system of claim 15, wherein the step of, creating a model which correlates the plurality of utility parameter values and the the set of utility parameter values with corresponding weather parameters values, stored on the one or more computer readable storage media, which when executed by a processor, cause the processor to: determine, by one or more processors, a single utility parameter value that corresponds to each weather parameter value.
 20. The computer system product of claim 15, wherein the step of, creating a model which correlates the plurality of utility parameter values and the the set of utility parameter values with corresponding weather parameters values, stored on the one or more computer readable storage media, which when executed by a processor, cause the processor to: determine, by one or more processors, a first slope for a first portion of determined utility parameter values; determine, by one or more processors, a second slope for a second portion of determined utility parameter values; and generate, by one or more processors, a model, utilizing a cubic spline approximation, based on the determined first and second slopes. 